/**
 * 
 */
package com.woniuxy.amusementparkos.dao.fzw;

import java.util.ArrayList;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.woniuxy.amusementparkos.entity.fzw.User;

/**
 *
 * @author fzw
 *
 * 2020年4月26日下午8:53:36
 */
public interface UserManagementDao {

	/**
	 * 查询一页10个数据的user信息
	 * @param curr
	 * @param limit
	 * @return
	 */
	List<User> selectAllUserByPageNumber(Integer curr, Integer limit);

	/**
	 * @param user
	 */
	void updataUser(User user);

	/**
	 * 根据用户id删除用户&角色关联表中用户的所有角色信息（更新时先删后添加）
	 * @param user_id
	 */
	void deleteUserAndRoleByUserId(int user_id);



	/**
	 * 重新插入新的用户对应的角色信息
	 * @param user_id
	 * @param i
	 */
	void insertUserAndRoleByUserId(int user_id, int role_id);
	/**
	 * 用户&角色关联表，一对多
	 * @param user_id 一个用户id
	 * @param role_ids 对应多个角色id
	 */
	void insertUserAndRoleByUserId2(@Param("user_id")int user_id,@Param("role_ids")List<Integer> role_ids);

	/**
	 * 验证后台添加的用户名是否已存在
	 * @param username
	 * @return
	 */
	User selectUsernameByAddUsername(String username);

	/**
	 * 后台添加用户
	 * @param user
	 */
	void insertUser(User user);

	/**
	 * 批量删除用户主信息
	 * @param uids
	 */
	void deleteUsersByIds(@Param("uids")List<Integer> uids);


	/**
	 * 批量删除用户关联的角色信息
	 * @param uids
	 */
	void deleteUserRoleByIds(@Param("uids")List<Integer> uids);

	/**
	 * 用户&菜单关联表，一对多
	 * @param user_id
	 * @param menu_ids
	 */
	void insertUserAndMenuByUserId(@Param("user_id")int user_id,@Param("menu_ids") List<Integer> menu_ids);


	/**
	 * @param user_id
	 * @param menu_id
	 */
	void insertUserAndMenuByUser_id(@Param("user_id")int user_id,@Param("menu_id") int menu_id);

	/**
	 * @param user_id
	 */
	void deleteUserAndMenuByUserId(int user_id);

	/**
	 * @return
	 */
	Long selectCount();

}
